1. Field of the Invention
The present invention relates generally to a communication system, and more particularly, to a transmission and reception method and apparatus for obtaining diversity effects.
2. Description of the Related Art
In wireless communication systems, link performances significantly degrade from various noises and fading of channels, and Inter-Symbol Interference (ISI). Therefore, to realize high-speed digital communication systems providing high data throughput and reliability, such as a next-generation mobile communication system, a digital broadcasting system, and a mobile Internet system, it is important to develop technologies for coping with noise, fading, and ISI. Recently, error-correcting codes have been studied to improve communication reliability by efficiently restoring information distortion.
A Low-Density Parity Check (LDPC) code, which was first introduced in the 1960s, was never commonly implemented due to its implementation complexity far exceeding the then current technology. However, as a turbo code, which was discovered in 1993, shows performance close to the Shannon's channel capability, many studies have been conducted on iterative decoding and graph-based channel encoding, along with many interpretations that have been made on the performance and characteristics of the turbo code. Upon this opportunity, the LDPC code was restudied in late 1990s, proving that the LDPC code also has performance close to Shannon's channel capacity, if decoded by sum-product algorithm-based iterative decoding on a Tanner graph (a specific case of a factor graph) corresponding to the LDPC code.
The LDPC code is commonly defined by a parity check matrix, and can be represented using a bipartite graph called a Tanner graph. An LDPC code is used to generate a codeword including Nldpc bits or symbols by receiving and LDPC-encoding an information word including Kldpc bits or symbols. For convenience of description, only a codeword including Nldpc bits, generated by receiving and LDPC-encoding an information word including Kldpc bits will be considered herein. That is, a codeword c=[c0, c1, c2, c3, . . . , cNldpc-1] is generated by receiving and LDPC-encoding an information word I={i0, i1, i2, . . . , iKldpc-1} including Kldpc input bits. That is, the codeword is a bit stream including a plurality of bits, and codeword bits are the bits of the codeword. Similarly, the information word is a bit stream including a plurality of bits, and information bits are the bits of the information word.
For a systematic code, a codeword is generated as c=[c0, c1, c2, c3, . . . , cNldpc-1]=[i0, i1, . . . , iKldpc-1, p0, p1, . . . , pNldpc-1], where P=[p0, p1, . . . , pNldpc-1] represents parity bits, and the number of parity bits is Nparity=Nldpc−Kldpc.
Because the TLPC code is defined by a parity check matrix, a sequence c satisfying Equation (1) becomes a codeword for an LDPC code.H·cT=0  (1)
In Equation (1), c=[c0, c1, c2, c3, . . . , cNldpc-1]. The parity check matrix H includes Nldpc columns, and means that an i-th column is associated with an i-th codeword bit c1.
As indicated above, an LDPC code may be represented by a bipartite graph based on a parity check matrix. The bipartite graph means that vertexes constituting the graph are divided into two different types. The LDPC code is represented by a bipartite graph including Nldpc vertexes, which are called variable nodes and check nodes. The variable nodes correspond to encoded bits on a one-to-one basis, meaning that an i-th variable node corresponds to an i-th codeword bit.
FIG. 1 illustrates an example of a parity check matrix H of an LDPC code including four rows and eight columns.
Referring to FIG. 1, the parity check matrix H generates a length-8 LDPC codeword because it has eight columns, which correspond to eight encoded bits, respectively.
FIG. 2 illustrates a Tanner graph corresponding to the parity check matrix H as illustrated in FIG. 1.
Referring to FIG. 2, the Tanner graph of the LDPC code includes eight variable nodes x0 202, x1 204, x2 206, x3 208, x4 210, x5 212, x6 214, and x7 216, and four check nodes 218, 220, 222, and 224. An i-th column and a j-th row in the parity check matrix H of the LDPC code correspond to an i-th variable node x1 and a j-th check node, respectively. In addition, a value of 1, i.e., a non-zero value, in the point where an i-th column and a j-th row cross in the parity check matrix H of the LDPC code means that an edge exists between the i-th variable node x1 and the j-th check node on the Tanner graph as illustrated in FIG. 2.
Generally, an LDPC code is decoded using a Tanner graph. That is, variable nodes and check nodes generate messages, and exchange the messages through their edges, thereby performing iterative decoding. Therefore, there are correlations between variable nodes connected to one check node, and the correlations should be considered during shortening and puncturing.
In the Tanner graph of the LDPC code, degrees of variable nodes and check nodes indicate the number of edges connected thereto, and are identical to the number of non-zero entries in columns or rows corresponding to their nodes in the parity check matrix of the LDPC code. For example, in FIG. 2, degrees of variable nodes x0 202, x1 204, x2 206, x3 208, x4 210, x5 212, x6 214, and x7 216 are 4, 3, 3, 3, 2, 2, 2, and 2, respectively, and degrees of check nodes 218, 220, 222, and 224 are 6, 5, 5, and 5, respectively. The numbers of non-zero entries in columns in the parity check matrix H of FIG. 1, which correspond to the variable nodes in FIG. 2, are also 4, 3, 3, 3, 2, 2, 2, and 2, respectively, and the numbers of non-zero entries in rows in the parity check matrix H of FIG. 1, which correspond to the check nodes in FIG. 2, are also 6, 5, 5, and 5, respectively. The variable nodes correspond to codeword bits on a one-to-one basis. Therefore, if an i-th variable node corresponds to an i-th codeword bit on a one-to-one basis, a degree of an i-th variable node can be considered as a degree of an i-th codeword bit.
The density of ‘1’ decreases with an increase in Nldpc in the parity check matrix. Generally, because the density of non-zero entries for an LDPC code is inversely proportional to the codeword length Nldpc, an LDPC code with a large value for Nldpc has a very low density. The use of “low density” in the name of the LDPC code was derived from this principle.
Because an LDPC code is defined by a parity check matrix, a system stores the parity check matrix in order to apply the LDPC code. Generally, to store an LDPC code, position information of a weight of 1 in the parity check matrix is stored. However, because a codeword length of an LDPC code used in an actual system ranges from hundreds of bits to hundreds of thousands of bits, a memory required to store the position information of a weight of 1 is very large in capacity if the codeword length of the LDPC code is very long.
To overcome these shortcomings, many studies have been conducted on various LDPC codes having specific structures. For an LDPC code having a specific structure, because positions of a weight of 1 are limited in its parity check matrix according to a specific condition, the positions of a weight of 1 can be stored more efficiently.
FIG. 3 illustrates an example of an LDPC code having a specific structure. It is assumed herein that an LDPC code has a systematic structure, in which a codeword includes an information word.
Referring to FIG. 3, the parity check matrix includes an information part (or information word part) and a parity part. The information part includes Kldpc columns, and the parity part includes Nparity=Nldpc−Kldpc columns. The number of rows in the parity check matrix is Nldpc−Kldpc, which is the same as the number of columns in the parity part.
Here, Nldpc represents a length of an LDPC codeword, Kldpc represents a length of an information word, and Nldpc−Kldpc represents a length of a parity part. The length of a codeword refers to the number of bits included in the codeword. Similarly, the length of an information word refers to the number of bits included in the information word. In addition, integers M and Qldpc are determined to meet
            Q      ldpc        =                  (                              N            ldpc                    -                      K            ldpc                          )            M        ,and
      K    ldpc    Mis also an integer. M and Qldpc are subject to change according to the codeword length and the code rate.
In the parity check matrix illustrated in FIG. 3, positions of a weight of 1 in a Kldpc-th column to an (Nldpc−1)-th column, which is a part corresponding to the parity bits, have a dual diagonal structure. Therefore, it is noted that degrees of columns corresponding to the parity bits are all 2, except for a degree of the (Nldpc−1)-th column, which is 1.
Referring to FIG. 3, in the parity check matrix, a structure of a 0-th column to a (Kldpc−1)-th column, i.e., a part corresponding to an information word, can be made according to the following rules.
Rule 1: In the parity check matrix, a total of
      K    ldpc    Mcolumn groups are generated by grouping Kldpc columns corresponding to an information word on an M-column basis. Columns in each column group are generated according to Rule 2 below.
Rule 2: Positions of 1 in a 0-th column in an i-th
  (            i      =      1        ,    …    ⁢                  ,                  K        ldpc            M        )column group are determined. Assuming that a degree of a 0-th column in each i-th column group is represented by D1, if positions of rows with 1 are Ri,0(1)Ri,0(2), . . . , Ri,0(Di), then positions Ri,0(k)(k=1, 2, . . . , Di) of rows with 1 in a j-th (j=1, 2, . . . , M−1) column in an i-th column group are defined as shown in Equation (2) below.
                                          R                          i              ,              j                                      (              k              )                                =                                    R                              i                ,                j                                            (                k                )                                      +                          q              ⁢                                                          ⁢                              mod                ⁡                                  (                                                            N                      ldpc                                        -                                          K                      ldpc                                                        )                                                                    ⁢                                  ⁢                              k            =            1                    ,          2          ,          …          ⁢                                          ,                      D            i                    ,                                          ⁢                      i            =            1                    ,          …          ⁢                                          ,                                    K              ldpc                        M                    ,                                          ⁢                      j            =            1                    ,          …          ⁢                                          ,                      M            -            1                                              (        2        )            
According to Rules 1 and 2, degrees of columns in an i-th
  (            i      =      1        ,    …    ⁢                  ,                  K        ldpc            M        )column group are all equal to D1.
A more detailed example will be described below for a better understanding of a structure of an LDPC code that stores information about the parity check matrix according to above rules. In the following detailed example, for Nldpc=30, Kldpc=15, M=5, and Qldpc=3, position information of rows with 1 in a 0-th column in each of three column groups may be represented in sequences called “weight-1 position sequences”, as shown below.
            R              1        ,        0                    (        1        )              =    1    ,          ⁢            R              1        ,        0                    (        2        )              =    2    ,          ⁢            R              1        ,        0                    (        3        )              =    8    ,          ⁢            R              1        ,        0                    (        4        )              =    10    ,          ⁢            R              2        ,        0                    (        1        )              =    0    ,          ⁢            R              2        ,        0                    (        2        )              =    9    ,          ⁢            R              2        ,        0                    (        3        )              =    13    ,          ⁢            R              3        ,        0                    (        1        )              =    0    ,          ⁢            R              3        ,        0                    (        2        )              =    14.  
For convenience, only the weight-1 position sequences for positions of rows with 1 in a 0-th column in each column group are represented on a column group basis, as shown below.
            1              2              8              10                  0              9              13                                              0              14                                                              
That is, the i-th weight-1 position sequence sequentially represents position information of rows with 1 in an i-th column group.
An LDPC code achieves encoding and decoding for a given number Kldpc of information bits and a given number Nldpc of codeword bits. The number Nparity of parity bits is Nldpc−Kldpc. If the given number Kldpc of information bits is greater than the number K1 of information bits being input to an encoder, the information bits undergo shortening by Kldpc−K1 before being transmitted. In addition, if the required number Ntx-parity=Ntx—ldpc−K1 of parity bits is less than the number Nparity of parity bits, the parity bits undergo puncturing by Nparity−Ntx-parity before being transmitted. The Ntx-parity represents a length of parity bits actually used, and can be calculated based on the length K1 of the input information word and the code rate for transmission. As the actual operations of shortening and puncturing are not directly related to the embodiment of the present invention that will be described below, detailed descriptions of the shortening and puncturing are omitted.
In some cases, when carrying encoded data, Additive White Gaussian Noise (AWGN) channels may ensure very good performance, but fading channels may fail to obtain sufficient diversity. Therefore, a method capable of overcoming this problem is required.
FIG. 4 illustrates OFDM frames in a on a Digital Video Broadcasting the 2nd Generation Terrestrial (DVB-T2) system and a Digital Video Broadcasting Next Generation Handheld (DVB-NGH) system.
Referring to FIG. 4, a plurality of frames each include a plurality of OFMD symbols. One frame includes a P1/P2 symbol part and a data part. Signaling information is mapped to the P1/P2 symbol part, and the mapped information is transmitted on the P1/P2 symbol part. Data other than the signaling information is mapped to the data part, and the mapped data is transmitted on a plurality of OFDM symbols. Accordingly, the data signals are transmitted on a plurality of frames, making it possible to obtain sufficient diversity gain. However, the signaling information cannot obtain sufficient diversity gain, which leads to performance degradation.